from typing import Dict, List
from pathlib import Path

# 项目根目录
ROOT_DIR = Path(__file__).parent.parent

# 考试时间顺序配置（从晚到早）
EXAM_SEQUENCE = {
    "上": ["期末", "1月", "12月", "11月", "期中", "10月", "9月"],
    "下": ["期末", "6月", "5月", "期中", "4月", "3月", "2月"]
}

# 考试类型权重（用于排序，数字越大表示越晚的考试）
EXAM_WEIGHTS = {
    # 上学期考试权重（从早到晚递增）
    "上_9月": 10, 
    "上_10月": 20, 
    "上_期中": 30, 
    "上_11月": 40,
    "上_12月": 50,
    "上_1月": 60,
    "上_期末": 70,
    # 下学期考试权重（从早到晚递增）
    "下_2月": 80,
    "下_3月": 90,
    "下_4月": 100,
    "下_期中": 110,
    "下_5月": 120,
    "下_6月": 130,
    "下_期末": 140
}

# 考试类型显示名称（用于美化显示）
EXAM_DISPLAY_NAMES = {
    "上_9月": "上学期9月月考", 
    "上_10月": "上学期10月月考", 
    "上_11月": "上学期11月月考",
    "上_12月": "上学期12月月考",
    "上_1月": "上学期1月月考",
    "上_期中": "上学期期中考试", 
    "上_期末": "上学期期末考试",
    "下_2月": "下学期2月月考",
    "下_3月": "下学期3月月考", 
    "下_4月": "下学期4月月考", 
    "下_5月": "下学期5月月考",
    "下_6月": "下学期6月月考",
    "下_期中": "下学期期中考试", 
    "下_期末": "下学期期末考试"
}

# 文件名解析正则表达式
FILENAME_PATTERN = r"(\d{4})届(高一)([上下])学期(\d+月|期中|期末).*?(\d+)班" 